#!/usr/bin/env python
# coding: utf-8

# In[ ]:





# # 本周内容
# ## 1.字典的实践（一）
# 
# * 课本P112-113
# * 知识点：
# > 1.利用字典计算词频
# > 2.字典的初始化

# In[12]:


# 在列表基础上（列表可统计出现的内容有哪些）
# 字典可统计出现的内容 + 出现次数（词频）
vowels = ["a","e","i","o","u"] # iterable
word = input("请输入一段文本，将统计元音字母出现的次数：")
found = {}

# 利用字典创建方式，创建字典： dict_name[key]=value
# found["a"]=0
# found["e"]=0
# found["i"]=0
# found["o"]=0
# found["u"]=0

# 方法一：循环 vowels
for i in vowels:    # 可优化 fromkeys（）
    found[i] = 0
    
# 方法二：利用fromkeys 实现初始化值
found = found.fromkeys(vowels,0)

for i in word: 
    if i in vowels:
        found[i] +=1
print(found)       
    


# In[13]:


print(found)


# > 1.  字典的高级用法: fromkeys（）
# >> 1. 给定一个序列数据作为key
# >> 2. 把序列所有内容进行初始化，作为新的字典开始

# In[14]:


help(found.fromkeys)


# In[23]:


names_list = ['zhichao','xiaofeng','lihua','Maria'] # iterable
names_age_dict = {}
names_age_dict = names_age_dict.fromkeys(names_list,0) # 把一个序列作为一个字典的keys，然后初始化其值（默认值为：none）， 可以给定一个值


# In[24]:


names_age_dict


# ## 2. 字典的实践（二）
# *课本p21

# > 2.字典的高级用法setdefault（）
# >> 1.如果字典中还没该内容（item），新增该item作为字典的key，默认值default = none，可以指定值的内容（初始化值的内容）
# >> 2.如果 该内容（item），已经是字典的key，则不操作

# In[25]:


help(names_age_dict.setdefault)


# In[27]:


vowels = ["a","e","i","o","u"]
# word = input("provide a word to search for vowels:")
found = {
    'a':2
}


# In[28]:


found = {'a':2}
found.setdefault('e',0) # e是不存在found中的
found


# In[31]:


found.setdefault('a',5) # a已经存在 字典2found中2，不操作


# In[32]:


found


# In[34]:


# 课本字典实践二：
vowels = ["a","e","i","o","u"]
# word = input("provide a word to search for vowels:")
found = {}

for letter in word:
    if letter in vowels:
        found.setdefault(letter,0)
        found[letter] +=1
found        


# In[ ]:


# 步骤：
# h 不在
# e  found = ['e':1]
# 1 不在
# 1 不在
# o found = ['e':1,'o':1]
#   不在
# x 不在
# i found ={'e':1,'o':1,'i':1}
# a found ={'e':1,'o':1,'i':1,'a':1}
# o found = {'e':1,'o':2,'i':1,'a':1}
# m 不在
# i found = {'e':1,'o':2,'i':2,'a':1}
# n 不在
# g 不在


# In[36]:


help(found.pop)


# ### 课后实践:
# |序号｜｜字典的方法｜用法｜使用结果｜注意事项｜
# |---|-----|-----|-----|----|
# |1|字典的删除pop（）|D.pop（k[.d])|remove specified key and return the corresprnding value|keyerror出现的情况:key找不到|
# |2|字典的删除popitem（）
# 

# ## 字典的实践（三）

# In[43]:


import pprint
people = {}
people['Ford'] = {"Name":'Ford Prefect',
                  "Gender":'Male',
                  "Occupation":'Researcher',
                  "Home Planet":'Betelgeuse Seven'}
people['Arthur'] = {"Name":'Arthur Dent',
                    "Gender":'Male',
                    "Occupation":'Sandwich-Maker',
                    "Home Planet":'Earth'}
people['Tricia'] = {"Name":'Tricia McMillan',
                    "Gender":'Female',
                    "Occupation":'Mathematician',
                    "Home Planet":'Earth'}
people['Marvin'] = {"Name":'Marvin',
                    "Gender":'Unknown',
                    "Occupation":'Paranoid Android',
                    "Home Planet":'Unknown'}
pprint.pprint(people)


# In[44]:


people


# In[45]:


# 请找出 Tricia 的名字全称
people["Tricia"]


# In[47]:


people["Tricia"]["Name"]


# In[48]:


people["Marvin"]


# In[50]:


people["Marvin"]["Home Planet"]


# In[51]:


# 查询字典中所有的key
people.keys()


# In[54]:


# 查看字典中所有的value
people.values()


# In[2]:


广州南方学院 = {'status': '1',
 'regeocode': {'roads': [{'id': '020F49F0050461206',
    'location': '113.678,23.6284',
    'direction': '北',
    'name': '博学路',
    'distance': '7.63232'},
   {'id': '020F49F0050462229',
    'location': '113.679,23.6245',
    'direction': '北',
    'name': '老虎形街',
    'distance': '445.159'},
   {'id': '020F49F0050462451',
    'location': '113.677,23.6347',
    'direction': '南',
    'name': '中山路',
    'distance': '708.299'}],
  'roadinters': [{'second_name': '中山路',
    'first_id': '020F49F0050461206',
    'second_id': '020F49F0050462451',
    'location': '113.676794,23.634661',
    'distance': '708.299',
    'first_name': '博学路',
    'direction': '南'}],
  'formatted_address': '广东省广州市从化区温泉镇博学路',
  'addressComponent': {'city': '广州市',
   'province': '广东省',
   'adcode': '440117',
   'district': '从化区',
   'towncode': '440117100000',
   'streetNumber': {'number': '24号',
    'location': '113.677267,23.629149',
    'direction': '西北',
    'distance': '129.943',
    'street': '博学路'},
   'country': '中国',
   'township': '温泉镇',
   'businessAreas': [[]],
   'building': {'name': [], 'type': []},
   'neighborhood': {'name': [], 'type': []},
   'citycode': '020'},
  'aois': [],
  'pois': [{'id': 'B0FFG4TAF2',
    'direction': '东南',
    'businessarea': [],
    'address': '温泉镇乌土村松浪队5号(近博学路)',
    'poiweight': '0.237309',
    'name': '广州南方公寓',
    'location': '113.678983,23.627778',
    'distance': '102.617',
    'tel': '13622768437',
    'type': '商务住宅;住宅区;住宅小区'},
   {'id': 'B0H6FA18J5',
    'direction': '东南',
    'businessarea': [],
    'address': '从莞深高速(广州南方学院南侧)',
    'poiweight': '0.223065',
    'name': '保利半山花园',
    'location': '113.679358,23.627672',
    'distance': '139.054',
    'tel': [],
    'type': '商务住宅;住宅区;住宅区'},
   {'id': 'B00140TWHT',
    'direction': '北',
    'businessarea': [],
    'address': '笃行路2',
    'poiweight': '0.157653',
    'name': '教工住宅1号',
    'location': '113.678490,23.630432',
    'distance': '222.658',
    'tel': [],
    'type': '商务住宅;住宅区;住宅小区'},
   {'id': 'B0FFHRJDM9',
    'direction': '东南',
    'businessarea': [],
    'address': '中大南方学院南门1号',
    'poiweight': '0.256152',
    'name': '中南公寓',
    'location': '113.680349,23.627573',
    'distance': '231.723',
    'tel': '13711245345',
    'type': '商务住宅;住宅区;住宅小区'},
   {'id': 'B0HGD588HJ',
    'direction': '北',
    'businessarea': [],
    'address': '博学路',
    'poiweight': '0.221662',
    'name': '广州南方学院教学楼4号',
    'location': '113.677460,23.630490',
    'distance': '242.901',
    'tel': [],
    'type': '科教文化服务;学校;学校'},
   {'id': 'B0FFHZH0IK',
    'direction': '西北',
    'businessarea': [],
    'address': '博学路广州南方学院综合楼内',
    'poiweight': '0.17934',
    'name': '地下铁',
    'location': '113.677941,23.629029',
    'distance': '74.1376',
    'tel': [],
    'type': '餐饮服务;冷饮店;冷饮店'},
   {'id': 'B0HGDU76L2',
    'direction': '北',
    'businessarea': [],
    'address': '博学路',
    'poiweight': '0.221662',
    'name': '广州南方学院2号实验楼',
    'location': '113.678211,23.630956',
    'distance': '280.003',
    'tel': [],
    'type': '科教文化服务;学校;学校'},
   {'id': 'B0FFKP838K',
    'direction': '北',
    'businessarea': [],
    'address': '博学路25',
    'poiweight': '0.191742',
    'name': '教学楼3号(外国语学院)',
    'location': '113.677247,23.630947',
    'distance': '298.093',
    'tel': [],
    'type': '科教文化服务;学校;高等院校'},
   {'id': 'B0HGDU8NLD',
    'direction': '北',
    'businessarea': [],
    'address': '博学路附近',
    'poiweight': '0.221662',
    'name': '广州南方学院1号实验楼',
    'location': '113.678215,23.631370',
    'distance': '326.007',
    'tel': [],
    'type': '科教文化服务;学校;学校'},
   {'id': 'B0HGD58UTU',
    'direction': '西北',
    'businessarea': [],
    'address': '博学路',
    'poiweight': '0.191229',
    'name': '广州南方学院2号教学楼',
    'location': '113.677060,23.631346',
    'distance': '346.352',
    'tel': [],
    'type': '科教文化服务;学校;学校'},
   {'id': 'B00140MR9A',
    'direction': '北',
    'businessarea': [],
    'address': '温泉大道882号',
    'poiweight': '0.450402',
    'name': '广州南方学院',
    'location': '113.679262,23.632583',
    'distance': '471.564',
    'tel': '020-87828988;020-61787331',
    'type': '科教文化服务;学校;高等院校'},
   {'id': 'B0HGDU92JD',
    'direction': '北',
    'businessarea': [],
    'address': [],
    'poiweight': '0.221662',
    'name': '广州南方学院教学楼1号',
    'location': '113.677077,23.631783',
    'distance': '391.548',
    'tel': [],
    'type': '科教文化服务;学校;学校'},
   {'id': 'B0HGD592BJ',
    'direction': '东北',
    'businessarea': [],
    'address': '温泉大道886号广州南方学院内',
    'poiweight': '0.221662',
    'name': '广州南方学院综合楼',
    'location': '113.680117,23.631544',
    'distance': '392.731',
    'tel': [],
    'type': '科教文化服务;学校;学校'},
   {'id': 'B0FFKP81F0',
    'direction': '西北',
    'businessarea': [],
    'address': '博学路19号附近',
    'poiweight': '0.191742',
    'name': '教学楼1号(文学与传媒学院)',
    'location': '113.676866,23.631736',
    'distance': '393.93',
    'tel': [],
    'type': '科教文化服务;科教文化场所;科教文化场所'},
   {'id': 'B0FFLBEOND',
    'direction': '东北',
    'businessarea': [],
    'address': '从莞深高速(广州南方学院)',
    'poiweight': '0.190963',
    'name': '聚贤楼10号',
    'location': '113.681253,23.631036',
    'distance': '418.51',
    'tel': [],
    'type': '商务住宅;住宅区;宿舍'},
   {'id': 'B0FFH6K3U9',
    'direction': '西北',
    'businessarea': [],
    'address': '温泉镇温泉大道882号广州南方学院H7栋1-5层',
    'poiweight': '0.254885',
    'name': '广州中大南方招待所',
    'location': '113.676330,23.631332',
    'distance': '378.102',
    'tel': '020-61787222',
    'type': '住宿服务;住宿服务相关;住宿服务相关'},
   {'id': 'B0HGD58NF8',
    'direction': '北',
    'businessarea': [],
    'address': '温泉大道882号广州南方学院新综合楼2层',
    'poiweight': '0.191229',
    'name': '广州南方学院达人书院',
    'location': '113.679041,23.632392',
    'distance': '446.366',
    'tel': [],
    'type': '科教文化服务;科教文化场所;科教文化场所'},
   {'id': 'B0FFKUVYWV',
    'direction': '东北',
    'businessarea': [],
    'address': '保利桃花源',
    'poiweight': '0.273168',
    'name': '广州和风庭阿七度假别墅',
    'location': '113.681736,23.630569',
    'distance': '424.35',
    'tel': '18681565305',
    'type': '住宿服务;住宿服务相关;住宿服务相关'},
   {'id': 'B0HGDU99RM',
    'direction': '北',
    'businessarea': [],
    'address': '温泉大道882号广州南方学院内',
    'poiweight': '0.257947',
    'name': '广州南方学院图书馆',
    'location': '113.679177,23.632762',
    'distance': '489.331',
    'tel': '020-61787368;020-61787371',
    'type': '科教文化服务;图书馆;图书馆'},
   {'id': 'B0HGDU92JC',
    'direction': '北',
    'businessarea': [],
    'address': '博学路附近',
    'poiweight': '0.221662',
    'name': '广州南方学院4号实验楼',
    'location': '113.679963,23.632652',
    'distance': '498.883',
    'tel': [],
    'type': '科教文化服务;学校;学校'},
   {'id': 'B0FFL7C054',
    'direction': '北',
    'businessarea': [],
    'address': '温泉镇博学路882号(广州南方学院商业中心1层)',
    'poiweight': '0.317505',
    'name': '广州U优森特酒店',
    'location': '113.679226,23.632528',
    'distance': '464.819',
    'tel': '15813395296',
    'type': '住宿服务;住宿服务相关;住宿服务相关'},
   {'id': 'B0FFG8CSEK',
    'direction': '东北',
    'businessarea': [],
    'address': '从莞深高速(广州南方学院)',
    'poiweight': '0.185371',
    'name': 'L5员工宿舍',
    'location': '113.682583,23.631487',
    'distance': '554.129',
    'tel': [],
    'type': '商务住宅;住宅区;宿舍'},
   {'id': 'B0HGD58FR2',
    'direction': '北',
    'businessarea': [],
    'address': '广州南方学院',
    'poiweight': '0.221662',
    'name': '广州南方学院教学楼9号',
    'location': '113.679747,23.633032',
    'distance': '532.163',
    'tel': [],
    'type': '科教文化服务;学校;学校'},
   {'id': 'B0HG5Z9JNK',
    'direction': '北',
    'businessarea': [],
    'address': '博学路',
    'poiweight': '0.221553',
    'name': '广州南方学院教学楼7号',
    'location': '113.678600,23.633330',
    'distance': '544.868',
    'tel': [],
    'type': '科教文化服务;学校;学校'},
   {'id': 'B0HGD599JM',
    'direction': '北',
    'businessarea': [],
    'address': '温泉大道882号广州南方学院',
    'poiweight': '0.221662',
    'name': '广州南方学院第11教学楼',
    'location': '113.680037,23.633173',
    'distance': '556.036',
    'tel': [],
    'type': '科教文化服务;学校;学校'},
   {'id': 'B0GUJYPEG2',
    'direction': '北',
    'businessarea': [],
    'address': '温泉大道882号广州南方学院内博学路6号之3',
    'poiweight': '0.216026',
    'name': '怒烤烤串(从化店)',
    'location': '113.677160,23.632910',
    'distance': '510.112',
    'tel': [],
    'type': '餐饮服务;中餐厅;特色/地方风味餐厅'},
   {'id': 'B0HGDU6Z41',
    'direction': '北',
    'businessarea': [],
    'address': '温泉大道882',
    'poiweight': '0.221662',
    'name': '广州南方学院教学楼6号',
    'location': '113.678424,23.633710',
    'distance': '586.331',
    'tel': [],
    'type': '科教文化服务;学校;学校'},
   {'id': 'B0HGD580NZ',
    'direction': '北',
    'businessarea': [],
    'address': '博学路7号附近',
    'poiweight': '0.285712',
    'name': '广州南方学院惟贤门',
    'location': '113.678437,23.633721',
    'distance': '587.601',
    'tel': [],
    'type': '科教文化服务;学校;高等院校'},
   {'id': 'B0HGDU7T1K',
    'direction': '北',
    'businessarea': [],
    'address': '从莞深高速(广州南方学院)',
    'poiweight': '0.191229',
    'name': '广州南方学院教学楼10号',
    'location': '113.680125,23.633492',
    'distance': '592.504',
    'tel': [],
    'type': '科教文化服务;科教文化场所;科教文化场所'},
   {'id': 'B0HGDU76L1',
    'direction': '北',
    'businessarea': [],
    'address': '中山路与博学路交叉口东南150米',
    'poiweight': '0.221662',
    'name': '广州南方学院教学楼5号',
    'location': '113.678046,23.633982',
    'distance': '616.848',
    'tel': [],
    'type': '科教文化服务;学校;学校'}]},
 'info': 'OK',
 'infocode': '10000'}


# In[3]:


#广州南方学院 # 是一个字典


# In[4]:


广州南方学院.keys()


# In[5]:


# 字典查询一般方法:1. 先看key是否存在 2. dict_name[key]进行查询
广州南方学院['status']


# >广州南方学院['regeocode']是核心数据
# >> 1. 广州南方学院['regeocode'].keys()
# >> 2. 一次查询一遍 key 对应的值

# In[6]:


广州南方学院['regeocode']


# In[7]:


广州南方学院_regeocode = 广州南方学院['regeocode']


# In[8]:


# 广州南方学院_regeocode 


# In[9]:


广州南方学院_regeocode.keys()


# In[10]:


广州南方学院_regeocode['roads']


# In[11]:


广州南方学院_regeocode['roadinters']


# In[12]:


广州南方学院_regeocode['formatted_address']


# In[13]:


广州南方学院_regeocode['addressComponent']


# In[14]:


广州南方学院_regeocode['aois']


# 广州南方学院_regeocode['pois'] 是兴趣点的目标数据
# 
# 处理列表，首先先查看列表的一个内容的数据样态 例如：广州南方学院_regeocode['pois'][0]
# 查看列表的长度（有多少个同样的数据形态的数据）

# In[15]:


# 广州南方学院_regeocode['pois']


# In[16]:


# 1.首先先查看列表的一个内容的数据样态
广州南方学院_regeocode['pois'][0]


# In[17]:


len(广州南方学院_regeocode['pois'])


# In[18]:


# 实践1（找出某一个细节的信息）：取出"教工住宅1号"的信息

for i in 广州南方学院_regeocode['pois']:
    if i['name'] == "教工住宅1号":
        教工住宅1号 = i 


# In[19]:


教工住宅1号


# In[20]:


教工住宅1号_name = 教工住宅1号['name']
教工住宅1号_name


# In[21]:


# 实践2（找出某种数据特征的数据） ：取出 direction 为 北 所有数据
direction_北 = []
for i in 广州南方学院_regeocode['pois']:
    if i['direction'] == '北':
        direction_北.append(i)


# In[22]:


len(direction_北)


# In[23]:


# 实践3（找出某种数据特征的数据） ：取出 direction 为 北 所有建筑名称
direction_北_name = []
for i in 广州南方学院_regeocode['pois']:
    if i['direction'] == '北':
        direction_北_name.append(i['name'])


# In[24]:


direction_北_name


# In[25]:


# 实践3（找出某种数据特征的数据） ：取出 direction 为 北 所有实验楼朝北的


# In[26]:


direction_北_name_实验楼 = []
for i in direction_北_name:
    if '实验楼' in i:
        direction_北_name_实验楼.append(i)

direction_北_name_实验楼        


# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:



